<?php

namespace app\api\controller\common;

use Generator;
use think\Controller;
use app\api\model\Admin as AdminModel;
use PhpOffice\PhpWord\TemplateProcessor;
use think\Db;
use think\Request;


/**
 * suntongjian专用类
 * 内部调用，非接口类
 */
class CommonBasic extends Controller
{


    /**
     * 将数值金额转换为中文大写金额
     * @param $amount float 金额(支持到分)
     * @param $type   int   补整类型,0:到角补整;1:到元补整
     * @return mixed 中文大写金额
     */
    public function convertAmountToCn($amount, $type = 1)
    {
        // 判断输出的金额是否为数字或数字字符串
        if (!is_numeric($amount)) {
            return "要转换的金额只能为数字!";
        }

        // 金额为0,则直接输出"零元整"
        if ($amount == 0) {
            return "人民币零元整";
        }

        // 金额不能为负数
        if ($amount < 0) {
            return "要转换的金额不能为负数!";
        }

        // 金额不能超过万亿,即12位
        if (strlen($amount) > 12) {
            return "要转换的金额不能为万亿及更高金额!";
        }

        // 预定义中文转换的数组
        $digital = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
        // 预定义单位转换的数组
        $position = array('仟', '佰', '拾', '亿', '仟', '佰', '拾', '万', '仟', '佰', '拾', '元');

        // 将金额的数值字符串拆分成数组
        $amountArr = explode('.', $amount);

        // 将整数位的数值字符串拆分成数组
        $integerArr = str_split($amountArr[0], 1);

        // 将整数部分替换成大写汉字
        $result           = '人民币';
        $integerArrLength = count($integerArr);     // 整数位数组的长度
        $positionLength   = count($position);         // 单位数组的长度
        for ($i = 0; $i < $integerArrLength; $i++) {
            // 如果数值不为0,则正常转换
            if ($integerArr[$i] != 0) {
                $result = $result . $digital[$integerArr[$i]] . $position[$positionLength - $integerArrLength + $i];
            } else {
                // 如果数值为0, 且单位是亿,万,元这三个的时候,则直接显示单位
                if (($positionLength - $integerArrLength + $i + 1) % 4 == 0) {
                    $result = $result . $position[$positionLength - $integerArrLength + $i];
                }
            }
        }

        // 如果小数位也要转换
        if ($type == 0) {
            // 将小数位的数值字符串拆分成数组
            $decimalArr = str_split($amountArr[1], 1);
            // 将角替换成大写汉字. 如果为0,则不替换
            if ($decimalArr[0] != 0) {
                $result = $result . $digital[$decimalArr[0]] . '角';
            }
            // 将分替换成大写汉字. 如果为0,则不替换
            if ($decimalArr[1] != 0) {
                $result = $result . $digital[$decimalArr[1]] . '分';
            }
        } else {
            $result = $result . '整';
        }
        return $result;
    }




    /**
     * 动态建展商表个人
     * 每个展会 生成新表 保存名称于 create_tablename
     *  [tbname,oldtbname
     *
     **/

    public function createtable_zh_bymodel($type,$para)
    {
        $dbPrefix="crm_";
        $sql2 = "DROP TABLE IF EXISTS `".$dbPrefix.$para['tbname']."` ";
        $res2 = Db::execute($sql2);
        //var_dump($res2);die;
        $sql = "CREATE TABLE `".$dbPrefix.$para['tbname']."` like ".$para['oldtbname'];
        $res = Db::execute($sql);
        if ($res !== false) {
            return 1;
        } else {
            return 0;
        }

    }


    // 获取某某展会- 某某展商 one
    public function getinfo_zsbyzh($type,$para){

        $where['id'] = $para['exhibition_id'];
        $tbname = "exhibition";
        $info_zh = $this->sel_com_one('222', $where, $tbname); // 查展会

        $where1['id'] = $para['id_zs']; // 展商id
        $info_zs = $this->sel_com_one('222', $where1, $info_zh['create_tablename']); // 查展商
        return  $info_zs;
    }


    // 文件类型
    public function filetypelist(){

        $info=array(array('text'=>'图片','value'=>'pic'),array('text'=>'视频','value'=>'video')
        ,array('text'=>'其他','value'=>'other'),array('text'=>'空闲','value'=>'nouser'));
         return  $info;
    }
    // 内容分类

    public function contenttypelist(){

        $info=array(array('text'=>'素材','value'=>'sc'),array('text'=>'成片','value'=>'cp'));
        return  $info;
    }

    // 主题分类
    public function zhutitypelist(){

        $info=array(array('text'=>'领导视察','value'=>'ldsc'),array('text'=>'工地建设','value'=>'gdjs')
        ,array('text'=>'花絮','value'=>'huaxu'));
        return  $info;
    }

    // 主要人物
    public function mainperson(){


        $where=" is_delete=0 ";
        $tbname="jq_mainperson";
        $list = Db::name($tbname)
            ->where($where)
            ->select();
        return $list;
    }



    //PHP获取磁盘大小
    public function get_disk_total(int $total)
    {
        $config = [
            '3' => 'GB',
            '2' => 'MB',
            '1' => 'KB'
        ];
        foreach($config as $key => $value){
            if($total > pow(1024, $key)){
                return round($total / pow(1024,$key)).$value;
            }
            return $total . 'B';
        }
    }

    public function  getsysphpInfo()
    {
        // 定义输出常量
        define('YES', 'Yes');
        define('NO', '<span style="color:red">No</span>');

        // 服务器系统
        $data['php_os'] = PHP_OS;
        // 服务器访问地址
        $data['http_host'] = $_SERVER['HTTP_HOST'];
        // 服务器名称
        $data['server_name'] = $_SERVER['SERVER_NAME'];
        // 服务器端口
        $data['server_port'] = $_SERVER['SERVER_PORT'];
        // 服务器地址
        $data['server_addr'] = isset($_SERVER['LOCAL_ADDR']) ? $_SERVER['LOCAL_ADDR'] : $_SERVER['SERVER_ADDR'];
        // 服务器软件
        $data['server_software'] = $_SERVER['SERVER_SOFTWARE'];
        // 站点目录
        $data['document_root'] = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : DOC_PATH;
        // PHP版本
        $data['php_version'] = PHP_VERSION;
        // 数据库驱动
//        $data['db_driver'] = Config::get('database.type');
        // php配置文件
        $data['php_ini'] = @php_ini_loaded_file();
        // 最大上传
        $data['upload_max_filesize'] = ini_get('upload_max_filesize');
        // 最大提交
        $data['post_max_size'] = ini_get('post_max_size');
        // 最大提交文件数
        $data['max_file_uploads'] = ini_get('max_file_uploads');
        // 内存限制
        $data['memory_limit'] = ini_get('memory_limit');
        // 检测gd扩展
        $data['gd'] = extension_loaded('gd') ? YES : NO;
        // 检测imap扩展
        $data['imap'] = extension_loaded('imap') ? YES : NO;
        // 检测socket扩展
        $data['sockets'] = extension_loaded('sockets') ? YES : NO;
        // 检测curl扩展
        $data['curl'] = extension_loaded('curl') ? YES : NO;
        // 会话保存路径
//        $data['session_save_path'] = session_save_path() ?: $_SERVER['TMP'];
        // 检测standard库是否存在
        $data['standard'] = extension_loaded('standard') ? YES : NO;
        // 检测多线程支持
        $data['pthreads'] = extension_loaded('pthreads') ? YES : NO;
        // 检测XCache支持
        $data['xcache'] = extension_loaded('XCache') ? YES : NO;
        // 检测APC支持
        $data['apc'] = extension_loaded('APC') ? YES : NO;
        // 检测eAccelerator支持
        $data['eaccelerator'] = extension_loaded('eAccelerator') ? YES : NO;
        // 检测wincache支持
        $data['wincache'] = extension_loaded('wincache') ? YES : NO;
        // 检测ZendOPcache支持
        $data['zendopcache'] = extension_loaded('Zend OPcache') ? YES : NO;
        // 检测memcache支持
        $data['memcache'] = extension_loaded('memcache') ? YES : NO;
        // 检测memcached支持
        $data['memcached'] = extension_loaded('memcached') ? YES : NO;
        // 已经安装模块
//        $loaded_extensions = get_loaded_extensions();
//        $extensions = '';
//        foreach ($loaded_extensions as $key => $value) {
//            $extensions .= $value . ', ';
//        }
//        $data['extensions'] = $extensions;
        // 脚本运行占用最大内存
//        $data['memory_limit']=get_cfg_var ("memory_limit")?get_cfg_var("memory_limit"):"无";
//        $data['get_spec_disk']=$this->get_spec_disk('all');
        $data['get_spacetotal']=$this->get_disk_total(disk_total_space('.'));
        $data['get_spacefree']=$this->get_disk_total(disk_free_space('.'));// 当前磁盘的剩余空间
        return $data;
    }











}
